bindings: Add more variant types
authorBenjamin Otte <otte@redhat.com>
Sat, 4 Aug 2018 10:27:30 +0000 (12:27 +0200)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 19 Mar 2020 03:00:49 +0000 (23:00 -0400)
Also marshal types that the code in gtkbindings.c doesn't use. These
will be used by gtk_widget_class_add_binding_signal().

gtk/gtkbindings.c

index 01ef9e6f6e3295b9ee8870456699a4620e3298cb..2c7840981576d6f04f616367fb80f013594739c9 100644 (file)
@@ -541,10 +541,22 @@ binding_compose_params (GObject       *object,
 
       switch ((guint) g_variant_classify (tmp_variant))
         {
+        case G_VARIANT_CLASS_BOOLEAN:
+          g_value_init (&tmp_value, G_TYPE_BOOLEAN);
+          g_value_set_boolean (&tmp_value, g_variant_get_boolean (tmp_variant));
+          break;
         case G_VARIANT_CLASS_DOUBLE:
           g_value_init (&tmp_value, G_TYPE_DOUBLE);
           g_value_set_double (&tmp_value, g_variant_get_double (tmp_variant));
           break;
+        case G_VARIANT_CLASS_INT32:
+          g_value_init (&tmp_value, G_TYPE_LONG);
+          g_value_set_long (&tmp_value, g_variant_get_int32 (tmp_variant));
+          break;
+        case G_VARIANT_CLASS_UINT32:
+          g_value_init (&tmp_value, G_TYPE_LONG);
+          g_value_set_long (&tmp_value, g_variant_get_uint32 (tmp_variant));
+          break;
         case G_VARIANT_CLASS_INT64:
           g_value_init (&tmp_value, G_TYPE_LONG);
           g_value_set_long (&tmp_value, g_variant_get_int64 (tmp_variant));